package mode.Mediator21;


/**
 * 中介模式
 *
 * https://zhuanlan.zhihu.com/p/637841219
 *
 * 中介者模式（Mediator Pattern）是一种行为型设计模式，它定义了一个中介对象来封装一组对象之间的交互。
 * 中介者模式降低了类之间的耦合，使得类之间的协作更加灵活。
 * 当对象之间的交互复杂时，可以使用中介者模式将这些交互的逻辑抽象出来，
 * 使得各个对象之间不再直接引用，而是通过中介者对象进行交互。
 *
 */
public class MediatorDemo {

    public static void main(String[] args) {
        Mediator chatRoom = new ChatRoomMediator();

        User user1 = new ChatUser(chatRoom, "小明");
        User user2 = new ChatUser(chatRoom, "小红");
        User user3 = new ChatUser(chatRoom, "小刚");

        chatRoom.addUser(user1);
        chatRoom.addUser(user2);
        chatRoom.addUser(user3);

        user1.send("大家好");
        user2.send("小明，你好");
        user3.send("小红，你好");
    }

}
